﻿
using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;

namespace EasyTest.Application;

/// <summary>
/// 题库表基础输入参数
/// </summary>
public class EtQuestionBankBaseInput
{
    /// <summary>
    /// 名称
    /// </summary>
    public virtual string Name { get; set; }

    /// <summary>
    /// 编码
    /// </summary>
    public virtual string? Code { get; set; }

    /// <summary>
    /// 描述
    /// </summary>
    public virtual string? Description { get; set; }

    /// <summary>
    /// 数据范围
    /// </summary>
    public virtual int DataScope { get; set; }

    /// <summary>
    /// 备注
    /// </summary>
    public virtual string? Remark { get; set; }

    /// <summary>
    /// 状态
    /// </summary>
    public virtual int Status { get; set; }

    /// <summary>
    /// 租户Id
    /// </summary>
    public virtual long? TenantId { get; set; }

    /// <summary>
    /// 创建者部门Id
    /// </summary>
    public virtual long? CreateOrgId { get; set; }

    /// <summary>
    /// 创建者部门名称
    /// </summary>
    public virtual string? CreateOrgName { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public virtual DateTime? CreateTime { get; set; }

    /// <summary>
    /// 更新时间
    /// </summary>
    public virtual DateTime? UpdateTime { get; set; }

    /// <summary>
    /// 创建者Id
    /// </summary>
    public virtual long? CreateUserId { get; set; }

    /// <summary>
    /// 创建者姓名
    /// </summary>
    public virtual string? CreateUserName { get; set; }

    /// <summary>
    /// 修改者Id
    /// </summary>
    public virtual long? UpdateUserId { get; set; }

    /// <summary>
    /// 修改者姓名
    /// </summary>
    public virtual string? UpdateUserName { get; set; }

    /// <summary>
    /// 软删除
    /// </summary>
    public virtual bool IsDelete { get; set; }

}

/// <summary>
/// 题库表分页查询输入参数
/// </summary>
public class PageEtQuestionBankInput : BasePageInput
{
    //public PageEtQuestionBankInput()
    //{
    //    SearchKey = string.Empty;
    //    Name = string.Empty;
    //    Code = string.Empty;
    //}

    /// <summary>
    /// 关键字查询
    /// </summary>
    public string SearchKey { get; set; }

    /// <summary>
    /// 名称
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 编码
    /// </summary>
    public string Code { get; set; }


    /// <summary>
    /// 状态
    /// </summary>
    public int? Status { get; set; }

}

/// <summary>
/// 题库表增加输入参数
/// </summary>
public class AddEtQuestionBankInput : EtQuestionBankBaseInput
{
    /// <summary>
    /// 名称
    /// </summary>
    [Required(ErrorMessage = "名称不能为空")]
    public override string Name { get; set; }

    /// <summary>
    /// 数据范围
    /// </summary>
    [Required(ErrorMessage = "数据范围不能为空")]
    public override int DataScope { get; set; }

    /// <summary>
    /// 状态
    /// </summary>
    [Required(ErrorMessage = "状态不能为空")]
    public override int Status { get; set; }

    /// <summary>
    /// 软删除
    /// </summary>
    [Required(ErrorMessage = "软删除不能为空")]
    public override bool IsDelete { get; set; }

}

/// <summary>
/// 题库表删除输入参数
/// </summary>
public class DeleteEtQuestionBankInput : BaseIdInput
{
}

/// <summary>
/// 题库表更新输入参数
/// </summary>
public class UpdateEtQuestionBankInput : EtQuestionBankBaseInput
{
    /// <summary>
    /// 主键Id
    /// </summary>
    [Required(ErrorMessage = "主键Id不能为空")]
    public long Id { get; set; }

}

/// <summary>
/// 题库表主键查询输入参数
/// </summary>
public class QueryByIdEtQuestionBankInput : DeleteEtQuestionBankInput
{

}
